<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><link rel="stylesheet" type="text/css" href="style.css" /><script type="text/javascript" src="highlight.js"></script></head><body><pre><span class="hs-comment">{-
(c) The University of Glasgow 2006
(c) The GRASP/AQUA Project, Glasgow University, 1992-1998
-}</span><span>
</span><span id="line-5"></span><span class="hs-pragma">{-# LANGUAGE RankNTypes #-}</span><span>
</span><span id="line-6"></span><span class="hs-pragma">{-# LANGUAGE ScopedTypeVariables #-}</span><span>
</span><span id="line-7"></span><span>
</span><span id="line-8"></span><span class="hs-comment">-- | Contains a debug function to dump parts of the GHC.Hs AST. It uses a syb</span><span>
</span><span id="line-9"></span><span class="hs-comment">-- traversal which falls back to displaying based on the constructor name, so</span><span>
</span><span id="line-10"></span><span class="hs-comment">-- can be used to dump anything having a @Data.Data@ instance.</span><span>
</span><span id="line-11"></span><span>
</span><span id="line-12"></span><span class="hs-keyword">module</span><span> </span><span class="hs-identifier">GHC.Hs.Dump</span><span> </span><span class="hs-special">(</span><span>
</span><span id="line-13"></span><span>        </span><span class="annot"><span class="hs-comment">-- * Dumping ASTs</span></span><span>
</span><span id="line-14"></span><span>        </span><span class="annot"><a href="GHC.Hs.Dump.html#showAstData"><span class="hs-identifier">showAstData</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-15"></span><span>        </span><span class="annot"><a href="GHC.Hs.Dump.html#BlankSrcSpan"><span class="hs-identifier">BlankSrcSpan</span></a></span><span class="hs-special">(</span><span class="hs-glyph">..</span><span class="hs-special">)</span><span class="hs-special">,</span><span>
</span><span id="line-16"></span><span>    </span><span class="hs-special">)</span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-17"></span><span>
</span><span id="line-18"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Prelude.html"><span class="hs-identifier">GHC.Prelude</span></a></span><span>
</span><span id="line-19"></span><span>
</span><span id="line-20"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../../base/src/Data.Data.html#"><span class="hs-identifier">Data.Data</span></a></span><span> </span><span class="hs-keyword">hiding</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../../base/src/Data.Data.html#Fixity"><span class="hs-identifier">Fixity</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-21"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Data.Bag.html"><span class="hs-identifier">GHC.Data.Bag</span></a></span><span>
</span><span id="line-22"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Types.Basic.html"><span class="hs-identifier">GHC.Types.Basic</span></a></span><span>
</span><span id="line-23"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Data.FastString.html"><span class="hs-identifier">GHC.Data.FastString</span></a></span><span>
</span><span id="line-24"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Types.Name.Set.html"><span class="hs-identifier">GHC.Types.Name.Set</span></a></span><span>
</span><span id="line-25"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Types.Name.html"><span class="hs-identifier">GHC.Types.Name</span></a></span><span>
</span><span id="line-26"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Core.DataCon.html"><span class="hs-identifier">GHC.Core.DataCon</span></a></span><span>
</span><span id="line-27"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html"><span class="hs-identifier">GHC.Types.SrcLoc</span></a></span><span>
</span><span id="line-28"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Hs.html"><span class="hs-identifier">GHC.Hs</span></a></span><span>
</span><span id="line-29"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Types.Var.html"><span class="hs-identifier">GHC.Types.Var</span></a></span><span>
</span><span id="line-30"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Unit.Module.html"><span class="hs-identifier">GHC.Unit.Module</span></a></span><span>
</span><span id="line-31"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html"><span class="hs-identifier">GHC.Utils.Outputable</span></a></span><span>
</span><span id="line-32"></span><span>
</span><span id="line-33"></span><span class="hs-keyword">import</span><span> </span><span class="hs-keyword">qualified</span><span> </span><span class="annot"><a href="../../bytestring/src/Data.ByteString.html#"><span class="hs-identifier">Data.ByteString</span></a></span><span> </span><span class="hs-keyword">as</span><span> </span><span class="annot"><span class="hs-identifier">B</span></span><span>
</span><span id="line-34"></span><span>
</span><span id="line-35"></span><span class="hs-keyword">data</span><span> </span><span id="BlankSrcSpan"><span class="annot"><a href="GHC.Hs.Dump.html#BlankSrcSpan"><span class="hs-identifier hs-var">BlankSrcSpan</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span id="BlankSrcSpan"><span class="annot"><a href="GHC.Hs.Dump.html#BlankSrcSpan"><span class="hs-identifier hs-var">BlankSrcSpan</span></a></span></span><span> </span><span class="hs-glyph">|</span><span> </span><span id="NoBlankSrcSpan"><span class="annot"><a href="GHC.Hs.Dump.html#NoBlankSrcSpan"><span class="hs-identifier hs-var">NoBlankSrcSpan</span></a></span></span><span>
</span><span id="line-36"></span><span>                  </span><span class="hs-keyword">deriving</span><span> </span><span class="hs-special">(</span><span id="local-6989586621680982412"><span id="local-6989586621680982414"><span class="annot"><span class="annottext">BlankSrcSpan -&gt; BlankSrcSpan -&gt; Bool
(BlankSrcSpan -&gt; BlankSrcSpan -&gt; Bool)
-&gt; (BlankSrcSpan -&gt; BlankSrcSpan -&gt; Bool) -&gt; Eq BlankSrcSpan
forall a. (a -&gt; a -&gt; Bool) -&gt; (a -&gt; a -&gt; Bool) -&gt; Eq a
/= :: BlankSrcSpan -&gt; BlankSrcSpan -&gt; Bool
$c/= :: BlankSrcSpan -&gt; BlankSrcSpan -&gt; Bool
== :: BlankSrcSpan -&gt; BlankSrcSpan -&gt; Bool
$c== :: BlankSrcSpan -&gt; BlankSrcSpan -&gt; Bool
</span><span class="hs-identifier hs-var hs-var hs-var hs-var hs-var hs-var">Eq</span></span></span></span><span class="hs-special">,</span><span id="local-6989586621680982405"><span id="local-6989586621680982407"><span id="local-6989586621680982409"><span class="annot"><span class="annottext">Int -&gt; BlankSrcSpan -&gt; ShowS
[BlankSrcSpan] -&gt; ShowS
BlankSrcSpan -&gt; String
(Int -&gt; BlankSrcSpan -&gt; ShowS)
-&gt; (BlankSrcSpan -&gt; String)
-&gt; ([BlankSrcSpan] -&gt; ShowS)
-&gt; Show BlankSrcSpan
forall a.
(Int -&gt; a -&gt; ShowS) -&gt; (a -&gt; String) -&gt; ([a] -&gt; ShowS) -&gt; Show a
showList :: [BlankSrcSpan] -&gt; ShowS
$cshowList :: [BlankSrcSpan] -&gt; ShowS
show :: BlankSrcSpan -&gt; String
$cshow :: BlankSrcSpan -&gt; String
showsPrec :: Int -&gt; BlankSrcSpan -&gt; ShowS
$cshowsPrec :: Int -&gt; BlankSrcSpan -&gt; ShowS
</span><a href="../../base/src/GHC.Show.html#Show"><span class="hs-identifier hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var">Show</span></a></span></span></span></span><span class="hs-special">)</span><span>
</span><span id="line-37"></span><span>
</span><span id="line-38"></span><span class="hs-comment">-- | Show a GHC syntax tree. This parameterised because it is also used for</span><span>
</span><span id="line-39"></span><span class="hs-comment">-- comparing ASTs in ppr roundtripping tests, where the SrcSpan's are blanked</span><span>
</span><span id="line-40"></span><span class="hs-comment">-- out, to avoid comparing locations, only structure</span><span>
</span><span id="line-41"></span><span id="local-6989586621680982546"><span class="annot"><a href="GHC.Hs.Dump.html#showAstData"><span class="hs-identifier hs-type">showAstData</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../base/src/Data.Data.html#Data"><span class="hs-identifier hs-type">Data</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680982546"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Dump.html#BlankSrcSpan"><span class="hs-identifier hs-type">BlankSrcSpan</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621680982546"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span></span><span>
</span><span id="line-42"></span><span id="showAstData"><span class="annot"><span class="annottext">showAstData :: forall a. Data a =&gt; BlankSrcSpan -&gt; a -&gt; SDoc
</span><a href="GHC.Hs.Dump.html#showAstData"><span class="hs-identifier hs-var hs-var">showAstData</span></a></span></span><span> </span><span id="local-6989586621680982401"><span class="annot"><span class="annottext">BlankSrcSpan
</span><a href="#local-6989586621680982401"><span class="hs-identifier hs-var">b</span></a></span></span><span> </span><span id="local-6989586621680982400"><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621680982400"><span class="hs-identifier hs-var">a0</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#blankLine"><span class="hs-identifier hs-var">blankLine</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span> </span><span class="annot"><span class="annottext">a -&gt; SDoc
forall a. Data a =&gt; a -&gt; SDoc
</span><a href="#local-6989586621680982397"><span class="hs-identifier hs-var">showAstData'</span></a></span><span> </span><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621680982400"><span class="hs-identifier hs-var">a0</span></a></span><span>
</span><span id="line-43"></span><span>  </span><span class="hs-keyword">where</span><span>
</span><span id="line-44"></span><span>    </span><span id="local-6989586621680982543"><span class="annot"><a href="#local-6989586621680982397"><span class="hs-identifier hs-type">showAstData'</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../base/src/Data.Data.html#Data"><span class="hs-identifier hs-type">Data</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680982543"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="#local-6989586621680982543"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span></span><span>
</span><span id="line-45"></span><span>    </span><span id="local-6989586621680982397"><span class="annot"><span class="annottext">showAstData' :: forall a. Data a =&gt; a -&gt; SDoc
</span><a href="#local-6989586621680982397"><span class="hs-identifier hs-var hs-var">showAstData'</span></a></span></span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-46"></span><span>      </span><span class="annot"><span class="annottext">a -&gt; SDoc
forall a. Data a =&gt; a -&gt; SDoc
</span><a href="#local-6989586621680982283"><span class="hs-identifier hs-var">generic</span></a></span><span>
</span><span id="line-47"></span><span>              </span><span class="annot"><span class="annottext">(a -&gt; SDoc) -&gt; (forall e. Data e =&gt; [e] -&gt; SDoc) -&gt; a -&gt; SDoc
forall d (t :: * -&gt; *) q.
(Data d, Typeable t) =&gt;
(d -&gt; q) -&gt; (forall e. Data e =&gt; t e -&gt; q) -&gt; d -&gt; q
</span><a href="GHC.Hs.Dump.html#ext1Q"><span class="hs-operator hs-var">`ext1Q`</span></a></span><span> </span><span class="annot"><span class="annottext">forall e. Data e =&gt; [e] -&gt; SDoc
</span><a href="#local-6989586621680982281"><span class="hs-identifier hs-var">list</span></a></span><span>
</span><span id="line-48"></span><span>              </span><span class="annot"><span class="annottext">(a -&gt; SDoc) -&gt; (String -&gt; SDoc) -&gt; a -&gt; SDoc
forall a b q.
(Typeable a, Typeable b) =&gt;
(a -&gt; q) -&gt; (b -&gt; q) -&gt; a -&gt; q
</span><a href="GHC.Hs.Dump.html#extQ"><span class="hs-operator hs-var">`extQ`</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="#local-6989586621680982277"><span class="hs-identifier hs-var">string</span></a></span><span> </span><span class="annot"><span class="annottext">(a -&gt; SDoc) -&gt; (FastString -&gt; SDoc) -&gt; a -&gt; SDoc
forall a b q.
(Typeable a, Typeable b) =&gt;
(a -&gt; q) -&gt; (b -&gt; q) -&gt; a -&gt; q
</span><a href="GHC.Hs.Dump.html#extQ"><span class="hs-operator hs-var">`extQ`</span></a></span><span> </span><span class="annot"><span class="annottext">FastString -&gt; SDoc
</span><a href="#local-6989586621680982276"><span class="hs-identifier hs-var">fastString</span></a></span><span> </span><span class="annot"><span class="annottext">(a -&gt; SDoc) -&gt; (SrcSpan -&gt; SDoc) -&gt; a -&gt; SDoc
forall a b q.
(Typeable a, Typeable b) =&gt;
(a -&gt; q) -&gt; (b -&gt; q) -&gt; a -&gt; q
</span><a href="GHC.Hs.Dump.html#extQ"><span class="hs-operator hs-var">`extQ`</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan -&gt; SDoc
</span><a href="#local-6989586621680982275"><span class="hs-identifier hs-var">srcSpan</span></a></span><span>
</span><span id="line-49"></span><span>              </span><span class="annot"><span class="annottext">(a -&gt; SDoc) -&gt; (HsLit GhcPs -&gt; SDoc) -&gt; a -&gt; SDoc
forall a b q.
(Typeable a, Typeable b) =&gt;
(a -&gt; q) -&gt; (b -&gt; q) -&gt; a -&gt; q
</span><a href="GHC.Hs.Dump.html#extQ"><span class="hs-operator hs-var">`extQ`</span></a></span><span> </span><span class="annot"><span class="annottext">HsLit GhcPs -&gt; SDoc
</span><a href="#local-6989586621680982274"><span class="hs-identifier hs-var">lit</span></a></span><span> </span><span class="annot"><span class="annottext">(a -&gt; SDoc) -&gt; (HsLit GhcRn -&gt; SDoc) -&gt; a -&gt; SDoc
forall a b q.
(Typeable a, Typeable b) =&gt;
(a -&gt; q) -&gt; (b -&gt; q) -&gt; a -&gt; q
</span><a href="GHC.Hs.Dump.html#extQ"><span class="hs-operator hs-var">`extQ`</span></a></span><span> </span><span class="annot"><span class="annottext">HsLit GhcRn -&gt; SDoc
</span><a href="#local-6989586621680982273"><span class="hs-identifier hs-var">litr</span></a></span><span> </span><span class="annot"><span class="annottext">(a -&gt; SDoc) -&gt; (HsLit GhcTc -&gt; SDoc) -&gt; a -&gt; SDoc
forall a b q.
(Typeable a, Typeable b) =&gt;
(a -&gt; q) -&gt; (b -&gt; q) -&gt; a -&gt; q
</span><a href="GHC.Hs.Dump.html#extQ"><span class="hs-operator hs-var">`extQ`</span></a></span><span> </span><span class="annot"><span class="annottext">HsLit GhcTc -&gt; SDoc
</span><a href="#local-6989586621680982272"><span class="hs-identifier hs-var">litt</span></a></span><span>
</span><span id="line-50"></span><span>              </span><span class="annot"><span class="annottext">(a -&gt; SDoc) -&gt; (ByteString -&gt; SDoc) -&gt; a -&gt; SDoc
forall a b q.
(Typeable a, Typeable b) =&gt;
(a -&gt; q) -&gt; (b -&gt; q) -&gt; a -&gt; q
</span><a href="GHC.Hs.Dump.html#extQ"><span class="hs-operator hs-var">`extQ`</span></a></span><span> </span><span class="annot"><span class="annottext">ByteString -&gt; SDoc
</span><a href="#local-6989586621680982271"><span class="hs-identifier hs-var">bytestring</span></a></span><span>
</span><span id="line-51"></span><span>              </span><span class="annot"><span class="annottext">(a -&gt; SDoc) -&gt; (Name -&gt; SDoc) -&gt; a -&gt; SDoc
forall a b q.
(Typeable a, Typeable b) =&gt;
(a -&gt; q) -&gt; (b -&gt; q) -&gt; a -&gt; q
</span><a href="GHC.Hs.Dump.html#extQ"><span class="hs-operator hs-var">`extQ`</span></a></span><span> </span><span class="annot"><span class="annottext">Name -&gt; SDoc
</span><a href="#local-6989586621680982270"><span class="hs-identifier hs-var">name</span></a></span><span> </span><span class="annot"><span class="annottext">(a -&gt; SDoc) -&gt; (OccName -&gt; SDoc) -&gt; a -&gt; SDoc
forall a b q.
(Typeable a, Typeable b) =&gt;
(a -&gt; q) -&gt; (b -&gt; q) -&gt; a -&gt; q
</span><a href="GHC.Hs.Dump.html#extQ"><span class="hs-operator hs-var">`extQ`</span></a></span><span> </span><span class="annot"><span class="annottext">OccName -&gt; SDoc
</span><a href="#local-6989586621680982269"><span class="hs-identifier hs-var">occName</span></a></span><span> </span><span class="annot"><span class="annottext">(a -&gt; SDoc) -&gt; (ModuleName -&gt; SDoc) -&gt; a -&gt; SDoc
forall a b q.
(Typeable a, Typeable b) =&gt;
(a -&gt; q) -&gt; (b -&gt; q) -&gt; a -&gt; q
</span><a href="GHC.Hs.Dump.html#extQ"><span class="hs-operator hs-var">`extQ`</span></a></span><span> </span><span class="annot"><span class="annottext">ModuleName -&gt; SDoc
</span><a href="#local-6989586621680982268"><span class="hs-identifier hs-var">moduleName</span></a></span><span> </span><span class="annot"><span class="annottext">(a -&gt; SDoc) -&gt; (Var -&gt; SDoc) -&gt; a -&gt; SDoc
forall a b q.
(Typeable a, Typeable b) =&gt;
(a -&gt; q) -&gt; (b -&gt; q) -&gt; a -&gt; q
</span><a href="GHC.Hs.Dump.html#extQ"><span class="hs-operator hs-var">`extQ`</span></a></span><span> </span><span class="annot"><span class="annottext">Var -&gt; SDoc
</span><a href="#local-6989586621680982267"><span class="hs-identifier hs-var">var</span></a></span><span>
</span><span id="line-52"></span><span>              </span><span class="annot"><span class="annottext">(a -&gt; SDoc) -&gt; (DataCon -&gt; SDoc) -&gt; a -&gt; SDoc
forall a b q.
(Typeable a, Typeable b) =&gt;
(a -&gt; q) -&gt; (b -&gt; q) -&gt; a -&gt; q
</span><a href="GHC.Hs.Dump.html#extQ"><span class="hs-operator hs-var">`extQ`</span></a></span><span> </span><span class="annot"><span class="annottext">DataCon -&gt; SDoc
</span><a href="#local-6989586621680982266"><span class="hs-identifier hs-var">dataCon</span></a></span><span>
</span><span id="line-53"></span><span>              </span><span class="annot"><span class="annottext">(a -&gt; SDoc) -&gt; (Bag (Located (HsBind GhcRn)) -&gt; SDoc) -&gt; a -&gt; SDoc
forall a b q.
(Typeable a, Typeable b) =&gt;
(a -&gt; q) -&gt; (b -&gt; q) -&gt; a -&gt; q
</span><a href="GHC.Hs.Dump.html#extQ"><span class="hs-operator hs-var">`extQ`</span></a></span><span> </span><span class="annot"><span class="annottext">Bag (Located (HsBind GhcRn)) -&gt; SDoc
</span><a href="#local-6989586621680982265"><span class="hs-identifier hs-var">bagName</span></a></span><span> </span><span class="annot"><span class="annottext">(a -&gt; SDoc) -&gt; (Bag (Located (HsBind GhcPs)) -&gt; SDoc) -&gt; a -&gt; SDoc
forall a b q.
(Typeable a, Typeable b) =&gt;
(a -&gt; q) -&gt; (b -&gt; q) -&gt; a -&gt; q
</span><a href="GHC.Hs.Dump.html#extQ"><span class="hs-operator hs-var">`extQ`</span></a></span><span> </span><span class="annot"><span class="annottext">Bag (Located (HsBind GhcPs)) -&gt; SDoc
</span><a href="#local-6989586621680982264"><span class="hs-identifier hs-var">bagRdrName</span></a></span><span> </span><span class="annot"><span class="annottext">(a -&gt; SDoc) -&gt; (Bag (Located (HsBind GhcTc)) -&gt; SDoc) -&gt; a -&gt; SDoc
forall a b q.
(Typeable a, Typeable b) =&gt;
(a -&gt; q) -&gt; (b -&gt; q) -&gt; a -&gt; q
</span><a href="GHC.Hs.Dump.html#extQ"><span class="hs-operator hs-var">`extQ`</span></a></span><span> </span><span class="annot"><span class="annottext">Bag (Located (HsBind GhcTc)) -&gt; SDoc
</span><a href="#local-6989586621680982263"><span class="hs-identifier hs-var">bagVar</span></a></span><span> </span><span class="annot"><span class="annottext">(a -&gt; SDoc) -&gt; (NameSet -&gt; SDoc) -&gt; a -&gt; SDoc
forall a b q.
(Typeable a, Typeable b) =&gt;
(a -&gt; q) -&gt; (b -&gt; q) -&gt; a -&gt; q
</span><a href="GHC.Hs.Dump.html#extQ"><span class="hs-operator hs-var">`extQ`</span></a></span><span> </span><span class="annot"><span class="annottext">NameSet -&gt; SDoc
</span><a href="#local-6989586621680982262"><span class="hs-identifier hs-var">nameSet</span></a></span><span>
</span><span id="line-54"></span><span>              </span><span class="annot"><span class="annottext">(a -&gt; SDoc) -&gt; (Fixity -&gt; SDoc) -&gt; a -&gt; SDoc
forall a b q.
(Typeable a, Typeable b) =&gt;
(a -&gt; q) -&gt; (b -&gt; q) -&gt; a -&gt; q
</span><a href="GHC.Hs.Dump.html#extQ"><span class="hs-operator hs-var">`extQ`</span></a></span><span> </span><span class="annot"><span class="annottext">Fixity -&gt; SDoc
</span><a href="#local-6989586621680982261"><span class="hs-identifier hs-var">fixity</span></a></span><span>
</span><span id="line-55"></span><span>              </span><span class="annot"><span class="annottext">(a -&gt; SDoc)
-&gt; (forall d1 d2. (Data d1, Data d2) =&gt; GenLocated d1 d2 -&gt; SDoc)
-&gt; a
-&gt; SDoc
forall d (t :: * -&gt; * -&gt; *) q.
(Data d, Typeable t) =&gt;
(d -&gt; q)
-&gt; (forall d1 d2. (Data d1, Data d2) =&gt; t d1 d2 -&gt; q) -&gt; d -&gt; q
</span><a href="GHC.Hs.Dump.html#ext2Q"><span class="hs-operator hs-var">`ext2Q`</span></a></span><span> </span><span class="annot"><span class="annottext">forall d1 d2. (Data d1, Data d2) =&gt; GenLocated d1 d2 -&gt; SDoc
forall b loc. (Data b, Data loc) =&gt; GenLocated loc b -&gt; SDoc
</span><a href="#local-6989586621680982259"><span class="hs-identifier hs-var">located</span></a></span><span>
</span><span id="line-56"></span><span>
</span><span id="line-57"></span><span>      </span><span class="hs-keyword">where</span><span> </span><span id="local-6989586621680982254"><span class="annot"><a href="#local-6989586621680982283"><span class="hs-identifier hs-type">generic</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../base/src/Data.Data.html#Data"><span class="hs-identifier hs-type">Data</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680982254"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="#local-6989586621680982254"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span></span><span>
</span><span id="line-58"></span><span>            </span><span id="local-6989586621680982283"><span class="annot"><span class="annottext">generic :: forall a. Data a =&gt; a -&gt; SDoc
</span><a href="#local-6989586621680982283"><span class="hs-identifier hs-var hs-var">generic</span></a></span></span><span> </span><span id="local-6989586621680982250"><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621680982250"><span class="hs-identifier hs-var">t</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#parens"><span class="hs-identifier hs-var">parens</span></a></span><span> </span><span class="annot"><span class="annottext">(SDoc -&gt; SDoc) -&gt; SDoc -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Constr -&gt; String
</span><a href="../../base/src/Data.Data.html#showConstr"><span class="hs-identifier hs-var">showConstr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">a -&gt; Constr
forall a. Data a =&gt; a -&gt; Constr
</span><a href="../../base/src/Data.Data.html#toConstr"><span class="hs-identifier hs-var">toConstr</span></a></span><span> </span><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621680982250"><span class="hs-identifier hs-var">t</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-59"></span><span>                                  </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span> </span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#vcat"><span class="hs-identifier hs-var">vcat</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(forall a. Data a =&gt; a -&gt; SDoc) -&gt; a -&gt; [SDoc]
forall a u. Data a =&gt; (forall d. Data d =&gt; d -&gt; u) -&gt; a -&gt; [u]
</span><a href="../../base/src/Data.Data.html#gmapQ"><span class="hs-identifier hs-var">gmapQ</span></a></span><span> </span><span class="annot"><span class="annottext">forall a. Data a =&gt; a -&gt; SDoc
</span><a href="#local-6989586621680982397"><span class="hs-identifier hs-var">showAstData'</span></a></span><span> </span><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621680982250"><span class="hs-identifier hs-var">t</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-60"></span><span>
</span><span id="line-61"></span><span>            </span><span class="annot"><a href="#local-6989586621680982277"><span class="hs-identifier hs-type">string</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../base/src/GHC.Base.html#String"><span class="hs-identifier hs-type">String</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-62"></span><span>            </span><span id="local-6989586621680982277"><span class="annot"><span class="annottext">string :: String -&gt; SDoc
</span><a href="#local-6989586621680982277"><span class="hs-identifier hs-var hs-var">string</span></a></span></span><span>     </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">(String -&gt; SDoc) -&gt; ShowS -&gt; String -&gt; SDoc
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">ShowS
</span><a href="GHC.Hs.Dump.html#normalize_newlines"><span class="hs-identifier hs-var">normalize_newlines</span></a></span><span> </span><span class="annot"><span class="annottext">ShowS -&gt; ShowS -&gt; ShowS
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">ShowS
forall a. Show a =&gt; a -&gt; String
</span><a href="../../base/src/GHC.Show.html#show"><span class="hs-identifier hs-var">show</span></a></span><span>
</span><span id="line-63"></span><span>
</span><span id="line-64"></span><span>            </span><span class="annot"><a href="#local-6989586621680982276"><span class="hs-identifier hs-type">fastString</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Data.FastString.html#FastString"><span class="hs-identifier hs-type">FastString</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-65"></span><span>            </span><span id="local-6989586621680982276"><span class="annot"><span class="annottext">fastString :: FastString -&gt; SDoc
</span><a href="#local-6989586621680982276"><span class="hs-identifier hs-var hs-var">fastString</span></a></span></span><span> </span><span id="local-6989586621680982238"><span class="annot"><span class="annottext">FastString
</span><a href="#local-6989586621680982238"><span class="hs-identifier hs-var">s</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#braces"><span class="hs-identifier hs-var">braces</span></a></span><span> </span><span class="annot"><span class="annottext">(SDoc -&gt; SDoc) -&gt; SDoc -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span>
</span><span id="line-66"></span><span>                            </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;FastString: &quot;</span></span><span>
</span><span id="line-67"></span><span>                         </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">ShowS
</span><a href="GHC.Hs.Dump.html#normalize_newlines"><span class="hs-identifier hs-var">normalize_newlines</span></a></span><span> </span><span class="annot"><span class="annottext">ShowS -&gt; (FastString -&gt; String) -&gt; FastString -&gt; String
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">FastString -&gt; String
forall a. Show a =&gt; a -&gt; String
</span><a href="../../base/src/GHC.Show.html#show"><span class="hs-identifier hs-var">show</span></a></span><span> </span><span class="annot"><span class="annottext">(FastString -&gt; String) -&gt; FastString -&gt; String
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">FastString
</span><a href="#local-6989586621680982238"><span class="hs-identifier hs-var">s</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-68"></span><span>
</span><span id="line-69"></span><span>            </span><span class="annot"><a href="#local-6989586621680982271"><span class="hs-identifier hs-type">bytestring</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../bytestring/src/Data.ByteString.Internal.html#ByteString"><span class="hs-identifier hs-type">B.ByteString</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-70"></span><span>            </span><span id="local-6989586621680982271"><span class="annot"><span class="annottext">bytestring :: ByteString -&gt; SDoc
</span><a href="#local-6989586621680982271"><span class="hs-identifier hs-var hs-var">bytestring</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">(String -&gt; SDoc) -&gt; (ByteString -&gt; String) -&gt; ByteString -&gt; SDoc
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">ShowS
</span><a href="GHC.Hs.Dump.html#normalize_newlines"><span class="hs-identifier hs-var">normalize_newlines</span></a></span><span> </span><span class="annot"><span class="annottext">ShowS -&gt; (ByteString -&gt; String) -&gt; ByteString -&gt; String
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">ByteString -&gt; String
forall a. Show a =&gt; a -&gt; String
</span><a href="../../base/src/GHC.Show.html#show"><span class="hs-identifier hs-var">show</span></a></span><span>
</span><span id="line-71"></span><span>
</span><span id="line-72"></span><span>            </span><span id="local-6989586621680982281"><span class="annot"><span class="annottext">list :: [t] -&gt; SDoc
</span><a href="#local-6989586621680982281"><span class="hs-identifier hs-var hs-var">list</span></a></span></span><span> </span><span class="hs-special">[</span><span class="hs-special">]</span><span>    </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#brackets"><span class="hs-identifier hs-var">brackets</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#empty"><span class="hs-identifier hs-var">empty</span></a></span><span>
</span><span id="line-73"></span><span>            </span><span class="annot"><a href="#local-6989586621680982281"><span class="hs-identifier hs-var">list</span></a></span><span> </span><span class="hs-special">[</span><span id="local-6989586621680982229"><span class="annot"><span class="annottext">t
</span><a href="#local-6989586621680982229"><span class="hs-identifier hs-var">x</span></a></span></span><span class="hs-special">]</span><span>   </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#brackets"><span class="hs-identifier hs-var">brackets</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">t -&gt; SDoc
forall a. Data a =&gt; a -&gt; SDoc
</span><a href="#local-6989586621680982397"><span class="hs-identifier hs-var">showAstData'</span></a></span><span> </span><span class="annot"><span class="annottext">t
</span><a href="#local-6989586621680982229"><span class="hs-identifier hs-var">x</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-74"></span><span>            </span><span class="annot"><a href="#local-6989586621680982281"><span class="hs-identifier hs-var">list</span></a></span><span> </span><span class="hs-special">(</span><span id="local-6989586621680982228"><span class="annot"><span class="annottext">t
</span><a href="#local-6989586621680982228"><span class="hs-identifier hs-var">x1</span></a></span></span><span> </span><span class="annot"><span class="hs-glyph hs-type">:</span></span><span> </span><span id="local-6989586621680982227"><span class="annot"><span class="annottext">t
</span><a href="#local-6989586621680982227"><span class="hs-identifier hs-var">x2</span></a></span></span><span> </span><span class="annot"><span class="hs-glyph hs-type">:</span></span><span> </span><span id="local-6989586621680982226"><span class="annot"><span class="annottext">[t]
</span><a href="#local-6989586621680982226"><span class="hs-identifier hs-var">xs</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span>  </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;[&quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">t -&gt; SDoc
forall a. Data a =&gt; a -&gt; SDoc
</span><a href="#local-6989586621680982397"><span class="hs-identifier hs-var">showAstData'</span></a></span><span> </span><span class="annot"><span class="annottext">t
</span><a href="#local-6989586621680982228"><span class="hs-identifier hs-var">x1</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-75"></span><span>                                </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span> </span><span class="annot"><span class="annottext">t -&gt; [t] -&gt; SDoc
forall {t}. Data t =&gt; t -&gt; [t] -&gt; SDoc
</span><a href="#local-6989586621680982225"><span class="hs-identifier hs-var">go</span></a></span><span> </span><span class="annot"><span class="annottext">t
</span><a href="#local-6989586621680982227"><span class="hs-identifier hs-var">x2</span></a></span><span> </span><span class="annot"><span class="annottext">[t]
</span><a href="#local-6989586621680982226"><span class="hs-identifier hs-var">xs</span></a></span><span>
</span><span id="line-76"></span><span>              </span><span class="hs-keyword">where</span><span>
</span><span id="line-77"></span><span>                </span><span id="local-6989586621680982225"><span class="annot"><span class="annottext">go :: t -&gt; [t] -&gt; SDoc
</span><a href="#local-6989586621680982225"><span class="hs-identifier hs-var hs-var">go</span></a></span></span><span> </span><span id="local-6989586621680982221"><span class="annot"><span class="annottext">t
</span><a href="#local-6989586621680982221"><span class="hs-identifier hs-var">y</span></a></span></span><span> </span><span class="hs-special">[</span><span class="hs-special">]</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;,&quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">t -&gt; SDoc
forall a. Data a =&gt; a -&gt; SDoc
</span><a href="#local-6989586621680982397"><span class="hs-identifier hs-var">showAstData'</span></a></span><span> </span><span class="annot"><span class="annottext">t
</span><a href="#local-6989586621680982221"><span class="hs-identifier hs-var">y</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;]&quot;</span></span><span>
</span><span id="line-78"></span><span>                </span><span class="annot"><a href="#local-6989586621680982225"><span class="hs-identifier hs-var">go</span></a></span><span> </span><span id="local-6989586621680982220"><span class="annot"><span class="annottext">t
</span><a href="#local-6989586621680982220"><span class="hs-identifier hs-var">y1</span></a></span></span><span> </span><span class="hs-special">(</span><span id="local-6989586621680982219"><span class="annot"><span class="annottext">t
</span><a href="#local-6989586621680982219"><span class="hs-identifier hs-var">y2</span></a></span></span><span> </span><span class="annot"><span class="hs-glyph hs-type">:</span></span><span> </span><span id="local-6989586621680982218"><span class="annot"><span class="annottext">[t]
</span><a href="#local-6989586621680982218"><span class="hs-identifier hs-var">ys</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;,&quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">t -&gt; SDoc
forall a. Data a =&gt; a -&gt; SDoc
</span><a href="#local-6989586621680982397"><span class="hs-identifier hs-var">showAstData'</span></a></span><span> </span><span class="annot"><span class="annottext">t
</span><a href="#local-6989586621680982220"><span class="hs-identifier hs-var">y1</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span> </span><span class="annot"><span class="annottext">t -&gt; [t] -&gt; SDoc
</span><a href="#local-6989586621680982225"><span class="hs-identifier hs-var">go</span></a></span><span> </span><span class="annot"><span class="annottext">t
</span><a href="#local-6989586621680982219"><span class="hs-identifier hs-var">y2</span></a></span><span> </span><span class="annot"><span class="annottext">[t]
</span><a href="#local-6989586621680982218"><span class="hs-identifier hs-var">ys</span></a></span><span>
</span><span id="line-79"></span><span>
</span><span id="line-80"></span><span>            </span><span class="hs-comment">-- Eliminate word-size dependence</span><span>
</span><span id="line-81"></span><span>            </span><span class="annot"><a href="#local-6989586621680982274"><span class="hs-identifier hs-type">lit</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Hs.Lit.html#HsLit"><span class="hs-identifier hs-type">HsLit</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPs"><span class="hs-identifier hs-type">GhcPs</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-82"></span><span>            </span><span id="local-6989586621680982274"><span class="annot"><span class="annottext">lit :: HsLit GhcPs -&gt; SDoc
</span><a href="#local-6989586621680982274"><span class="hs-identifier hs-var hs-var">lit</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Lit.html#HsWordPrim"><span class="hs-identifier hs-type">HsWordPrim</span></a></span><span>   </span><span id="local-6989586621680982216"><span class="annot"><span class="annottext">XHsWordPrim GhcPs
</span><a href="#local-6989586621680982216"><span class="hs-identifier hs-var">s</span></a></span></span><span> </span><span id="local-6989586621680982215"><span class="annot"><span class="annottext">Integer
</span><a href="#local-6989586621680982215"><span class="hs-identifier hs-var">x</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; Integer -&gt; SourceText -&gt; SDoc
</span><a href="#local-6989586621680982214"><span class="hs-identifier hs-var">numericLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;HsWord{64}Prim&quot;</span></span><span> </span><span class="annot"><span class="annottext">Integer
</span><a href="#local-6989586621680982215"><span class="hs-identifier hs-var">x</span></a></span><span> </span><span class="annot"><span class="annottext">SourceText
XHsWordPrim GhcPs
</span><a href="#local-6989586621680982216"><span class="hs-identifier hs-var">s</span></a></span><span>
</span><span id="line-83"></span><span>            </span><span class="annot"><a href="#local-6989586621680982274"><span class="hs-identifier hs-var">lit</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Lit.html#HsWord64Prim"><span class="hs-identifier hs-type">HsWord64Prim</span></a></span><span> </span><span id="local-6989586621680982212"><span class="annot"><span class="annottext">XHsWord64Prim GhcPs
</span><a href="#local-6989586621680982212"><span class="hs-identifier hs-var">s</span></a></span></span><span> </span><span id="local-6989586621680982211"><span class="annot"><span class="annottext">Integer
</span><a href="#local-6989586621680982211"><span class="hs-identifier hs-var">x</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; Integer -&gt; SourceText -&gt; SDoc
</span><a href="#local-6989586621680982214"><span class="hs-identifier hs-var">numericLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;HsWord{64}Prim&quot;</span></span><span> </span><span class="annot"><span class="annottext">Integer
</span><a href="#local-6989586621680982211"><span class="hs-identifier hs-var">x</span></a></span><span> </span><span class="annot"><span class="annottext">SourceText
XHsWord64Prim GhcPs
</span><a href="#local-6989586621680982212"><span class="hs-identifier hs-var">s</span></a></span><span>
</span><span id="line-84"></span><span>            </span><span class="annot"><a href="#local-6989586621680982274"><span class="hs-identifier hs-var">lit</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Lit.html#HsIntPrim"><span class="hs-identifier hs-type">HsIntPrim</span></a></span><span>    </span><span id="local-6989586621680982209"><span class="annot"><span class="annottext">XHsIntPrim GhcPs
</span><a href="#local-6989586621680982209"><span class="hs-identifier hs-var">s</span></a></span></span><span> </span><span id="local-6989586621680982208"><span class="annot"><span class="annottext">Integer
</span><a href="#local-6989586621680982208"><span class="hs-identifier hs-var">x</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; Integer -&gt; SourceText -&gt; SDoc
</span><a href="#local-6989586621680982214"><span class="hs-identifier hs-var">numericLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;HsInt{64}Prim&quot;</span></span><span>  </span><span class="annot"><span class="annottext">Integer
</span><a href="#local-6989586621680982208"><span class="hs-identifier hs-var">x</span></a></span><span> </span><span class="annot"><span class="annottext">SourceText
XHsIntPrim GhcPs
</span><a href="#local-6989586621680982209"><span class="hs-identifier hs-var">s</span></a></span><span>
</span><span id="line-85"></span><span>            </span><span class="annot"><a href="#local-6989586621680982274"><span class="hs-identifier hs-var">lit</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Lit.html#HsInt64Prim"><span class="hs-identifier hs-type">HsInt64Prim</span></a></span><span>  </span><span id="local-6989586621680982206"><span class="annot"><span class="annottext">XHsInt64Prim GhcPs
</span><a href="#local-6989586621680982206"><span class="hs-identifier hs-var">s</span></a></span></span><span> </span><span id="local-6989586621680982205"><span class="annot"><span class="annottext">Integer
</span><a href="#local-6989586621680982205"><span class="hs-identifier hs-var">x</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; Integer -&gt; SourceText -&gt; SDoc
</span><a href="#local-6989586621680982214"><span class="hs-identifier hs-var">numericLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;HsInt{64}Prim&quot;</span></span><span>  </span><span class="annot"><span class="annottext">Integer
</span><a href="#local-6989586621680982205"><span class="hs-identifier hs-var">x</span></a></span><span> </span><span class="annot"><span class="annottext">SourceText
XHsInt64Prim GhcPs
</span><a href="#local-6989586621680982206"><span class="hs-identifier hs-var">s</span></a></span><span>
</span><span id="line-86"></span><span>            </span><span class="annot"><a href="#local-6989586621680982274"><span class="hs-identifier hs-var">lit</span></a></span><span> </span><span id="local-6989586621680982204"><span class="annot"><span class="annottext">HsLit GhcPs
</span><a href="#local-6989586621680982204"><span class="hs-identifier hs-var">l</span></a></span></span><span>                  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">HsLit GhcPs -&gt; SDoc
forall a. Data a =&gt; a -&gt; SDoc
</span><a href="#local-6989586621680982283"><span class="hs-identifier hs-var">generic</span></a></span><span> </span><span class="annot"><span class="annottext">HsLit GhcPs
</span><a href="#local-6989586621680982204"><span class="hs-identifier hs-var">l</span></a></span><span>
</span><span id="line-87"></span><span>
</span><span id="line-88"></span><span>            </span><span class="annot"><a href="#local-6989586621680982273"><span class="hs-identifier hs-type">litr</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Hs.Lit.html#HsLit"><span class="hs-identifier hs-type">HsLit</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcRn"><span class="hs-identifier hs-type">GhcRn</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-89"></span><span>            </span><span id="local-6989586621680982273"><span class="annot"><span class="annottext">litr :: HsLit GhcRn -&gt; SDoc
</span><a href="#local-6989586621680982273"><span class="hs-identifier hs-var hs-var">litr</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Lit.html#HsWordPrim"><span class="hs-identifier hs-type">HsWordPrim</span></a></span><span>   </span><span id="local-6989586621680982203"><span class="annot"><span class="annottext">XHsWordPrim GhcRn
</span><a href="#local-6989586621680982203"><span class="hs-identifier hs-var">s</span></a></span></span><span> </span><span id="local-6989586621680982202"><span class="annot"><span class="annottext">Integer
</span><a href="#local-6989586621680982202"><span class="hs-identifier hs-var">x</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; Integer -&gt; SourceText -&gt; SDoc
</span><a href="#local-6989586621680982214"><span class="hs-identifier hs-var">numericLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;HsWord{64}Prim&quot;</span></span><span> </span><span class="annot"><span class="annottext">Integer
</span><a href="#local-6989586621680982202"><span class="hs-identifier hs-var">x</span></a></span><span> </span><span class="annot"><span class="annottext">SourceText
XHsWordPrim GhcRn
</span><a href="#local-6989586621680982203"><span class="hs-identifier hs-var">s</span></a></span><span>
</span><span id="line-90"></span><span>            </span><span class="annot"><a href="#local-6989586621680982273"><span class="hs-identifier hs-var">litr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Lit.html#HsWord64Prim"><span class="hs-identifier hs-type">HsWord64Prim</span></a></span><span> </span><span id="local-6989586621680982201"><span class="annot"><span class="annottext">XHsWord64Prim GhcRn
</span><a href="#local-6989586621680982201"><span class="hs-identifier hs-var">s</span></a></span></span><span> </span><span id="local-6989586621680982200"><span class="annot"><span class="annottext">Integer
</span><a href="#local-6989586621680982200"><span class="hs-identifier hs-var">x</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; Integer -&gt; SourceText -&gt; SDoc
</span><a href="#local-6989586621680982214"><span class="hs-identifier hs-var">numericLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;HsWord{64}Prim&quot;</span></span><span> </span><span class="annot"><span class="annottext">Integer
</span><a href="#local-6989586621680982200"><span class="hs-identifier hs-var">x</span></a></span><span> </span><span class="annot"><span class="annottext">SourceText
XHsWord64Prim GhcRn
</span><a href="#local-6989586621680982201"><span class="hs-identifier hs-var">s</span></a></span><span>
</span><span id="line-91"></span><span>            </span><span class="annot"><a href="#local-6989586621680982273"><span class="hs-identifier hs-var">litr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Lit.html#HsIntPrim"><span class="hs-identifier hs-type">HsIntPrim</span></a></span><span>    </span><span id="local-6989586621680982199"><span class="annot"><span class="annottext">XHsIntPrim GhcRn
</span><a href="#local-6989586621680982199"><span class="hs-identifier hs-var">s</span></a></span></span><span> </span><span id="local-6989586621680982198"><span class="annot"><span class="annottext">Integer
</span><a href="#local-6989586621680982198"><span class="hs-identifier hs-var">x</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; Integer -&gt; SourceText -&gt; SDoc
</span><a href="#local-6989586621680982214"><span class="hs-identifier hs-var">numericLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;HsInt{64}Prim&quot;</span></span><span>  </span><span class="annot"><span class="annottext">Integer
</span><a href="#local-6989586621680982198"><span class="hs-identifier hs-var">x</span></a></span><span> </span><span class="annot"><span class="annottext">SourceText
XHsIntPrim GhcRn
</span><a href="#local-6989586621680982199"><span class="hs-identifier hs-var">s</span></a></span><span>
</span><span id="line-92"></span><span>            </span><span class="annot"><a href="#local-6989586621680982273"><span class="hs-identifier hs-var">litr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Lit.html#HsInt64Prim"><span class="hs-identifier hs-type">HsInt64Prim</span></a></span><span>  </span><span id="local-6989586621680982197"><span class="annot"><span class="annottext">XHsInt64Prim GhcRn
</span><a href="#local-6989586621680982197"><span class="hs-identifier hs-var">s</span></a></span></span><span> </span><span id="local-6989586621680982196"><span class="annot"><span class="annottext">Integer
</span><a href="#local-6989586621680982196"><span class="hs-identifier hs-var">x</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; Integer -&gt; SourceText -&gt; SDoc
</span><a href="#local-6989586621680982214"><span class="hs-identifier hs-var">numericLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;HsInt{64}Prim&quot;</span></span><span>  </span><span class="annot"><span class="annottext">Integer
</span><a href="#local-6989586621680982196"><span class="hs-identifier hs-var">x</span></a></span><span> </span><span class="annot"><span class="annottext">SourceText
XHsInt64Prim GhcRn
</span><a href="#local-6989586621680982197"><span class="hs-identifier hs-var">s</span></a></span><span>
</span><span id="line-93"></span><span>            </span><span class="annot"><a href="#local-6989586621680982273"><span class="hs-identifier hs-var">litr</span></a></span><span> </span><span id="local-6989586621680982195"><span class="annot"><span class="annottext">HsLit GhcRn
</span><a href="#local-6989586621680982195"><span class="hs-identifier hs-var">l</span></a></span></span><span>                  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">HsLit GhcRn -&gt; SDoc
forall a. Data a =&gt; a -&gt; SDoc
</span><a href="#local-6989586621680982283"><span class="hs-identifier hs-var">generic</span></a></span><span> </span><span class="annot"><span class="annottext">HsLit GhcRn
</span><a href="#local-6989586621680982195"><span class="hs-identifier hs-var">l</span></a></span><span>
</span><span id="line-94"></span><span>
</span><span id="line-95"></span><span>            </span><span class="annot"><a href="#local-6989586621680982272"><span class="hs-identifier hs-type">litt</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Hs.Lit.html#HsLit"><span class="hs-identifier hs-type">HsLit</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-96"></span><span>            </span><span id="local-6989586621680982272"><span class="annot"><span class="annottext">litt :: HsLit GhcTc -&gt; SDoc
</span><a href="#local-6989586621680982272"><span class="hs-identifier hs-var hs-var">litt</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Lit.html#HsWordPrim"><span class="hs-identifier hs-type">HsWordPrim</span></a></span><span>   </span><span id="local-6989586621680982194"><span class="annot"><span class="annottext">XHsWordPrim GhcTc
</span><a href="#local-6989586621680982194"><span class="hs-identifier hs-var">s</span></a></span></span><span> </span><span id="local-6989586621680982193"><span class="annot"><span class="annottext">Integer
</span><a href="#local-6989586621680982193"><span class="hs-identifier hs-var">x</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; Integer -&gt; SourceText -&gt; SDoc
</span><a href="#local-6989586621680982214"><span class="hs-identifier hs-var">numericLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;HsWord{64}Prim&quot;</span></span><span> </span><span class="annot"><span class="annottext">Integer
</span><a href="#local-6989586621680982193"><span class="hs-identifier hs-var">x</span></a></span><span> </span><span class="annot"><span class="annottext">SourceText
XHsWordPrim GhcTc
</span><a href="#local-6989586621680982194"><span class="hs-identifier hs-var">s</span></a></span><span>
</span><span id="line-97"></span><span>            </span><span class="annot"><a href="#local-6989586621680982272"><span class="hs-identifier hs-var">litt</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Lit.html#HsWord64Prim"><span class="hs-identifier hs-type">HsWord64Prim</span></a></span><span> </span><span id="local-6989586621680982192"><span class="annot"><span class="annottext">XHsWord64Prim GhcTc
</span><a href="#local-6989586621680982192"><span class="hs-identifier hs-var">s</span></a></span></span><span> </span><span id="local-6989586621680982191"><span class="annot"><span class="annottext">Integer
</span><a href="#local-6989586621680982191"><span class="hs-identifier hs-var">x</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; Integer -&gt; SourceText -&gt; SDoc
</span><a href="#local-6989586621680982214"><span class="hs-identifier hs-var">numericLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;HsWord{64}Prim&quot;</span></span><span> </span><span class="annot"><span class="annottext">Integer
</span><a href="#local-6989586621680982191"><span class="hs-identifier hs-var">x</span></a></span><span> </span><span class="annot"><span class="annottext">SourceText
XHsWord64Prim GhcTc
</span><a href="#local-6989586621680982192"><span class="hs-identifier hs-var">s</span></a></span><span>
</span><span id="line-98"></span><span>            </span><span class="annot"><a href="#local-6989586621680982272"><span class="hs-identifier hs-var">litt</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Lit.html#HsIntPrim"><span class="hs-identifier hs-type">HsIntPrim</span></a></span><span>    </span><span id="local-6989586621680982190"><span class="annot"><span class="annottext">XHsIntPrim GhcTc
</span><a href="#local-6989586621680982190"><span class="hs-identifier hs-var">s</span></a></span></span><span> </span><span id="local-6989586621680982189"><span class="annot"><span class="annottext">Integer
</span><a href="#local-6989586621680982189"><span class="hs-identifier hs-var">x</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; Integer -&gt; SourceText -&gt; SDoc
</span><a href="#local-6989586621680982214"><span class="hs-identifier hs-var">numericLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;HsInt{64}Prim&quot;</span></span><span>  </span><span class="annot"><span class="annottext">Integer
</span><a href="#local-6989586621680982189"><span class="hs-identifier hs-var">x</span></a></span><span> </span><span class="annot"><span class="annottext">SourceText
XHsIntPrim GhcTc
</span><a href="#local-6989586621680982190"><span class="hs-identifier hs-var">s</span></a></span><span>
</span><span id="line-99"></span><span>            </span><span class="annot"><a href="#local-6989586621680982272"><span class="hs-identifier hs-var">litt</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Lit.html#HsInt64Prim"><span class="hs-identifier hs-type">HsInt64Prim</span></a></span><span>  </span><span id="local-6989586621680982188"><span class="annot"><span class="annottext">XHsInt64Prim GhcTc
</span><a href="#local-6989586621680982188"><span class="hs-identifier hs-var">s</span></a></span></span><span> </span><span id="local-6989586621680982187"><span class="annot"><span class="annottext">Integer
</span><a href="#local-6989586621680982187"><span class="hs-identifier hs-var">x</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; Integer -&gt; SourceText -&gt; SDoc
</span><a href="#local-6989586621680982214"><span class="hs-identifier hs-var">numericLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;HsInt{64}Prim&quot;</span></span><span>  </span><span class="annot"><span class="annottext">Integer
</span><a href="#local-6989586621680982187"><span class="hs-identifier hs-var">x</span></a></span><span> </span><span class="annot"><span class="annottext">SourceText
XHsInt64Prim GhcTc
</span><a href="#local-6989586621680982188"><span class="hs-identifier hs-var">s</span></a></span><span>
</span><span id="line-100"></span><span>            </span><span class="annot"><a href="#local-6989586621680982272"><span class="hs-identifier hs-var">litt</span></a></span><span> </span><span id="local-6989586621680982186"><span class="annot"><span class="annottext">HsLit GhcTc
</span><a href="#local-6989586621680982186"><span class="hs-identifier hs-var">l</span></a></span></span><span>                  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">HsLit GhcTc -&gt; SDoc
forall a. Data a =&gt; a -&gt; SDoc
</span><a href="#local-6989586621680982283"><span class="hs-identifier hs-var">generic</span></a></span><span> </span><span class="annot"><span class="annottext">HsLit GhcTc
</span><a href="#local-6989586621680982186"><span class="hs-identifier hs-var">l</span></a></span><span>
</span><span id="line-101"></span><span>
</span><span id="line-102"></span><span>            </span><span class="annot"><a href="#local-6989586621680982214"><span class="hs-identifier hs-type">numericLit</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../base/src/GHC.Base.html#String"><span class="hs-identifier hs-type">String</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Integer</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Basic.html#SourceText"><span class="hs-identifier hs-type">SourceText</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-103"></span><span>            </span><span id="local-6989586621680982214"><span class="annot"><span class="annottext">numericLit :: String -&gt; Integer -&gt; SourceText -&gt; SDoc
</span><a href="#local-6989586621680982214"><span class="hs-identifier hs-var hs-var">numericLit</span></a></span></span><span> </span><span id="local-6989586621680982185"><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621680982185"><span class="hs-identifier hs-var">tag</span></a></span></span><span> </span><span id="local-6989586621680982184"><span class="annot"><span class="annottext">Integer
</span><a href="#local-6989586621680982184"><span class="hs-identifier hs-var">x</span></a></span></span><span> </span><span id="local-6989586621680982183"><span class="annot"><span class="annottext">SourceText
</span><a href="#local-6989586621680982183"><span class="hs-identifier hs-var">s</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#braces"><span class="hs-identifier hs-var">braces</span></a></span><span> </span><span class="annot"><span class="annottext">(SDoc -&gt; SDoc) -&gt; SDoc -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#hsep"><span class="hs-identifier hs-var">hsep</span></a></span><span> </span><span class="hs-special">[</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621680982185"><span class="hs-identifier hs-var">tag</span></a></span><span>
</span><span id="line-104"></span><span>                                               </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Integer -&gt; SDoc
forall a. Data a =&gt; a -&gt; SDoc
</span><a href="#local-6989586621680982283"><span class="hs-identifier hs-var">generic</span></a></span><span> </span><span class="annot"><span class="annottext">Integer
</span><a href="#local-6989586621680982184"><span class="hs-identifier hs-var">x</span></a></span><span>
</span><span id="line-105"></span><span>                                               </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">SourceText -&gt; SDoc
forall a. Data a =&gt; a -&gt; SDoc
</span><a href="#local-6989586621680982283"><span class="hs-identifier hs-var">generic</span></a></span><span> </span><span class="annot"><span class="annottext">SourceText
</span><a href="#local-6989586621680982183"><span class="hs-identifier hs-var">s</span></a></span><span> </span><span class="hs-special">]</span><span>
</span><span id="line-106"></span><span>
</span><span id="line-107"></span><span>            </span><span class="annot"><a href="#local-6989586621680982270"><span class="hs-identifier hs-type">name</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.Name.html#Name"><span class="hs-identifier hs-type">Name</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-108"></span><span>            </span><span id="local-6989586621680982270"><span class="annot"><span class="annottext">name :: Name -&gt; SDoc
</span><a href="#local-6989586621680982270"><span class="hs-identifier hs-var hs-var">name</span></a></span></span><span> </span><span id="local-6989586621680982181"><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621680982181"><span class="hs-identifier hs-var">nm</span></a></span></span><span>    </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#braces"><span class="hs-identifier hs-var">braces</span></a></span><span> </span><span class="annot"><span class="annottext">(SDoc -&gt; SDoc) -&gt; SDoc -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;Name: &quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Name -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621680982181"><span class="hs-identifier hs-var">nm</span></a></span><span>
</span><span id="line-109"></span><span>
</span><span id="line-110"></span><span>            </span><span id="local-6989586621680982269"><span class="annot"><span class="annottext">occName :: OccName -&gt; SDoc
</span><a href="#local-6989586621680982269"><span class="hs-identifier hs-var hs-var">occName</span></a></span></span><span> </span><span id="local-6989586621680982179"><span class="annot"><span class="annottext">OccName
</span><a href="#local-6989586621680982179"><span class="hs-identifier hs-var">n</span></a></span></span><span>  </span><span class="hs-glyph">=</span><span>  </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#braces"><span class="hs-identifier hs-var">braces</span></a></span><span> </span><span class="annot"><span class="annottext">(SDoc -&gt; SDoc) -&gt; SDoc -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span>
</span><span id="line-111"></span><span>                          </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;OccName: &quot;</span></span><span>
</span><span id="line-112"></span><span>                       </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">OccName -&gt; String
</span><a href="GHC.Types.Name.Occurrence.html#occNameString"><span class="hs-identifier hs-var">occNameString</span></a></span><span> </span><span class="annot"><span class="annottext">OccName
</span><a href="#local-6989586621680982179"><span class="hs-identifier hs-var">n</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-113"></span><span>
</span><span id="line-114"></span><span>            </span><span class="annot"><a href="#local-6989586621680982268"><span class="hs-identifier hs-type">moduleName</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Unit.Module.Name.html#ModuleName"><span class="hs-identifier hs-type">ModuleName</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-115"></span><span>            </span><span id="local-6989586621680982268"><span class="annot"><span class="annottext">moduleName :: ModuleName -&gt; SDoc
</span><a href="#local-6989586621680982268"><span class="hs-identifier hs-var hs-var">moduleName</span></a></span></span><span> </span><span id="local-6989586621680982177"><span class="annot"><span class="annottext">ModuleName
</span><a href="#local-6989586621680982177"><span class="hs-identifier hs-var">m</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#braces"><span class="hs-identifier hs-var">braces</span></a></span><span> </span><span class="annot"><span class="annottext">(SDoc -&gt; SDoc) -&gt; SDoc -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;ModuleName: &quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">ModuleName -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">ModuleName
</span><a href="#local-6989586621680982177"><span class="hs-identifier hs-var">m</span></a></span><span>
</span><span id="line-116"></span><span>
</span><span id="line-117"></span><span>            </span><span class="annot"><a href="#local-6989586621680982275"><span class="hs-identifier hs-type">srcSpan</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#SrcSpan"><span class="hs-identifier hs-type">SrcSpan</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-118"></span><span>            </span><span id="local-6989586621680982275"><span class="annot"><span class="annottext">srcSpan :: SrcSpan -&gt; SDoc
</span><a href="#local-6989586621680982275"><span class="hs-identifier hs-var hs-var">srcSpan</span></a></span></span><span> </span><span id="local-6989586621680982176"><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621680982176"><span class="hs-identifier hs-var">ss</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">BlankSrcSpan
</span><a href="#local-6989586621680982401"><span class="hs-identifier hs-var">b</span></a></span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-119"></span><span>             </span><span class="annot"><span class="annottext">BlankSrcSpan
</span><a href="GHC.Hs.Dump.html#BlankSrcSpan"><span class="hs-identifier hs-var">BlankSrcSpan</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;{ ss }&quot;</span></span><span>
</span><span id="line-120"></span><span>             </span><span class="annot"><span class="annottext">BlankSrcSpan
</span><a href="GHC.Hs.Dump.html#NoBlankSrcSpan"><span class="hs-identifier hs-var">NoBlankSrcSpan</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#braces"><span class="hs-identifier hs-var">braces</span></a></span><span> </span><span class="annot"><span class="annottext">(SDoc -&gt; SDoc) -&gt; SDoc -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">Char -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#char"><span class="hs-identifier hs-var">char</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">' '</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span>
</span><span id="line-121"></span><span>                             </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SDoc -&gt; Int -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#hang"><span class="hs-identifier hs-var">hang</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SrcSpan -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621680982176"><span class="hs-identifier hs-var">ss</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">1</span></span><span>
</span><span id="line-122"></span><span>                                   </span><span class="hs-comment">-- TODO: show annotations here</span><span>
</span><span id="line-123"></span><span>                                   </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;&quot;</span></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-124"></span><span>
</span><span id="line-125"></span><span>            </span><span class="annot"><a href="#local-6989586621680982267"><span class="hs-identifier hs-type">var</span></a></span><span>  </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.Var.html#Var"><span class="hs-identifier hs-type">Var</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-126"></span><span>            </span><span id="local-6989586621680982267"><span class="annot"><span class="annottext">var :: Var -&gt; SDoc
</span><a href="#local-6989586621680982267"><span class="hs-identifier hs-var hs-var">var</span></a></span></span><span> </span><span id="local-6989586621680982173"><span class="annot"><span class="annottext">Var
</span><a href="#local-6989586621680982173"><span class="hs-identifier hs-var">v</span></a></span></span><span>      </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#braces"><span class="hs-identifier hs-var">braces</span></a></span><span> </span><span class="annot"><span class="annottext">(SDoc -&gt; SDoc) -&gt; SDoc -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;Var: &quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Var -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Var
</span><a href="#local-6989586621680982173"><span class="hs-identifier hs-var">v</span></a></span><span>
</span><span id="line-127"></span><span>
</span><span id="line-128"></span><span>            </span><span class="annot"><a href="#local-6989586621680982266"><span class="hs-identifier hs-type">dataCon</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Core.DataCon.html#DataCon"><span class="hs-identifier hs-type">DataCon</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-129"></span><span>            </span><span id="local-6989586621680982266"><span class="annot"><span class="annottext">dataCon :: DataCon -&gt; SDoc
</span><a href="#local-6989586621680982266"><span class="hs-identifier hs-var hs-var">dataCon</span></a></span></span><span> </span><span id="local-6989586621680982172"><span class="annot"><span class="annottext">DataCon
</span><a href="#local-6989586621680982172"><span class="hs-identifier hs-var">c</span></a></span></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#braces"><span class="hs-identifier hs-var">braces</span></a></span><span> </span><span class="annot"><span class="annottext">(SDoc -&gt; SDoc) -&gt; SDoc -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;DataCon: &quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">DataCon -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">DataCon
</span><a href="#local-6989586621680982172"><span class="hs-identifier hs-var">c</span></a></span><span>
</span><span id="line-130"></span><span>
</span><span id="line-131"></span><span>            </span><span class="annot"><a href="#local-6989586621680982264"><span class="hs-identifier hs-type">bagRdrName</span></a></span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Data.Bag.html#Bag"><span class="hs-identifier hs-type">Bag</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#Located"><span class="hs-identifier hs-type">Located</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Binds.html#HsBind"><span class="hs-identifier hs-type">HsBind</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPs"><span class="hs-identifier hs-type">GhcPs</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-132"></span><span>            </span><span id="local-6989586621680982264"><span class="annot"><span class="annottext">bagRdrName :: Bag (Located (HsBind GhcPs)) -&gt; SDoc
</span><a href="#local-6989586621680982264"><span class="hs-identifier hs-var hs-var">bagRdrName</span></a></span></span><span> </span><span id="local-6989586621680982171"><span class="annot"><span class="annottext">Bag (Located (HsBind GhcPs))
</span><a href="#local-6989586621680982171"><span class="hs-identifier hs-var">bg</span></a></span></span><span> </span><span class="hs-glyph">=</span><span>  </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#braces"><span class="hs-identifier hs-var">braces</span></a></span><span> </span><span class="annot"><span class="annottext">(SDoc -&gt; SDoc) -&gt; SDoc -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span>
</span><span id="line-133"></span><span>                             </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;Bag(Located (HsBind GhcPs)):&quot;</span></span><span>
</span><span id="line-134"></span><span>                          </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">[Located (HsBind GhcPs)] -&gt; SDoc
forall e. Data e =&gt; [e] -&gt; SDoc
</span><a href="#local-6989586621680982281"><span class="hs-identifier hs-var">list</span></a></span><span> </span><span class="annot"><span class="annottext">([Located (HsBind GhcPs)] -&gt; SDoc)
-&gt; (Bag (Located (HsBind GhcPs)) -&gt; [Located (HsBind GhcPs)])
-&gt; Bag (Located (HsBind GhcPs))
-&gt; SDoc
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">Bag (Located (HsBind GhcPs)) -&gt; [Located (HsBind GhcPs)]
forall a. Bag a -&gt; [a]
</span><a href="GHC.Data.Bag.html#bagToList"><span class="hs-identifier hs-var">bagToList</span></a></span><span> </span><span class="annot"><span class="annottext">(Bag (Located (HsBind GhcPs)) -&gt; SDoc)
-&gt; Bag (Located (HsBind GhcPs)) -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">Bag (Located (HsBind GhcPs))
</span><a href="#local-6989586621680982171"><span class="hs-identifier hs-var">bg</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-135"></span><span>
</span><span id="line-136"></span><span>            </span><span class="annot"><a href="#local-6989586621680982265"><span class="hs-identifier hs-type">bagName</span></a></span><span>   </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Data.Bag.html#Bag"><span class="hs-identifier hs-type">Bag</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#Located"><span class="hs-identifier hs-type">Located</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Binds.html#HsBind"><span class="hs-identifier hs-type">HsBind</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcRn"><span class="hs-identifier hs-type">GhcRn</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-137"></span><span>            </span><span id="local-6989586621680982265"><span class="annot"><span class="annottext">bagName :: Bag (Located (HsBind GhcRn)) -&gt; SDoc
</span><a href="#local-6989586621680982265"><span class="hs-identifier hs-var hs-var">bagName</span></a></span></span><span> </span><span id="local-6989586621680982169"><span class="annot"><span class="annottext">Bag (Located (HsBind GhcRn))
</span><a href="#local-6989586621680982169"><span class="hs-identifier hs-var">bg</span></a></span></span><span>  </span><span class="hs-glyph">=</span><span>  </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#braces"><span class="hs-identifier hs-var">braces</span></a></span><span> </span><span class="annot"><span class="annottext">(SDoc -&gt; SDoc) -&gt; SDoc -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span>
</span><span id="line-138"></span><span>                           </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;Bag(Located (HsBind Name)):&quot;</span></span><span>
</span><span id="line-139"></span><span>                        </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">[Located (HsBind GhcRn)] -&gt; SDoc
forall e. Data e =&gt; [e] -&gt; SDoc
</span><a href="#local-6989586621680982281"><span class="hs-identifier hs-var">list</span></a></span><span> </span><span class="annot"><span class="annottext">([Located (HsBind GhcRn)] -&gt; SDoc)
-&gt; (Bag (Located (HsBind GhcRn)) -&gt; [Located (HsBind GhcRn)])
-&gt; Bag (Located (HsBind GhcRn))
-&gt; SDoc
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">Bag (Located (HsBind GhcRn)) -&gt; [Located (HsBind GhcRn)]
forall a. Bag a -&gt; [a]
</span><a href="GHC.Data.Bag.html#bagToList"><span class="hs-identifier hs-var">bagToList</span></a></span><span> </span><span class="annot"><span class="annottext">(Bag (Located (HsBind GhcRn)) -&gt; SDoc)
-&gt; Bag (Located (HsBind GhcRn)) -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">Bag (Located (HsBind GhcRn))
</span><a href="#local-6989586621680982169"><span class="hs-identifier hs-var">bg</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-140"></span><span>
</span><span id="line-141"></span><span>            </span><span class="annot"><a href="#local-6989586621680982263"><span class="hs-identifier hs-type">bagVar</span></a></span><span>    </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Data.Bag.html#Bag"><span class="hs-identifier hs-type">Bag</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#Located"><span class="hs-identifier hs-type">Located</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Binds.html#HsBind"><span class="hs-identifier hs-type">HsBind</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-142"></span><span>            </span><span id="local-6989586621680982263"><span class="annot"><span class="annottext">bagVar :: Bag (Located (HsBind GhcTc)) -&gt; SDoc
</span><a href="#local-6989586621680982263"><span class="hs-identifier hs-var hs-var">bagVar</span></a></span></span><span> </span><span id="local-6989586621680982168"><span class="annot"><span class="annottext">Bag (Located (HsBind GhcTc))
</span><a href="#local-6989586621680982168"><span class="hs-identifier hs-var">bg</span></a></span></span><span>  </span><span class="hs-glyph">=</span><span>  </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#braces"><span class="hs-identifier hs-var">braces</span></a></span><span> </span><span class="annot"><span class="annottext">(SDoc -&gt; SDoc) -&gt; SDoc -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span>
</span><span id="line-143"></span><span>                          </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;Bag(Located (HsBind Var)):&quot;</span></span><span>
</span><span id="line-144"></span><span>                       </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">[Located (HsBind GhcTc)] -&gt; SDoc
forall e. Data e =&gt; [e] -&gt; SDoc
</span><a href="#local-6989586621680982281"><span class="hs-identifier hs-var">list</span></a></span><span> </span><span class="annot"><span class="annottext">([Located (HsBind GhcTc)] -&gt; SDoc)
-&gt; (Bag (Located (HsBind GhcTc)) -&gt; [Located (HsBind GhcTc)])
-&gt; Bag (Located (HsBind GhcTc))
-&gt; SDoc
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">Bag (Located (HsBind GhcTc)) -&gt; [Located (HsBind GhcTc)]
forall a. Bag a -&gt; [a]
</span><a href="GHC.Data.Bag.html#bagToList"><span class="hs-identifier hs-var">bagToList</span></a></span><span> </span><span class="annot"><span class="annottext">(Bag (Located (HsBind GhcTc)) -&gt; SDoc)
-&gt; Bag (Located (HsBind GhcTc)) -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">Bag (Located (HsBind GhcTc))
</span><a href="#local-6989586621680982168"><span class="hs-identifier hs-var">bg</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-145"></span><span>
</span><span id="line-146"></span><span>            </span><span id="local-6989586621680982262"><span class="annot"><span class="annottext">nameSet :: NameSet -&gt; SDoc
</span><a href="#local-6989586621680982262"><span class="hs-identifier hs-var hs-var">nameSet</span></a></span></span><span> </span><span id="local-6989586621680982165"><span class="annot"><span class="annottext">NameSet
</span><a href="#local-6989586621680982165"><span class="hs-identifier hs-var">ns</span></a></span></span><span> </span><span class="hs-glyph">=</span><span>  </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#braces"><span class="hs-identifier hs-var">braces</span></a></span><span> </span><span class="annot"><span class="annottext">(SDoc -&gt; SDoc) -&gt; SDoc -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span>
</span><span id="line-147"></span><span>                          </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;NameSet:&quot;</span></span><span>
</span><span id="line-148"></span><span>                       </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">[Name] -&gt; SDoc
forall e. Data e =&gt; [e] -&gt; SDoc
</span><a href="#local-6989586621680982281"><span class="hs-identifier hs-var">list</span></a></span><span> </span><span class="annot"><span class="annottext">([Name] -&gt; SDoc) -&gt; (NameSet -&gt; [Name]) -&gt; NameSet -&gt; SDoc
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">NameSet -&gt; [Name]
</span><a href="GHC.Types.Name.Set.html#nameSetElemsStable"><span class="hs-identifier hs-var">nameSetElemsStable</span></a></span><span> </span><span class="annot"><span class="annottext">(NameSet -&gt; SDoc) -&gt; NameSet -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">NameSet
</span><a href="#local-6989586621680982165"><span class="hs-identifier hs-var">ns</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-149"></span><span>
</span><span id="line-150"></span><span>            </span><span class="annot"><a href="#local-6989586621680982261"><span class="hs-identifier hs-type">fixity</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.Basic.html#Fixity"><span class="hs-identifier hs-type">Fixity</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-151"></span><span>            </span><span id="local-6989586621680982261"><span class="annot"><span class="annottext">fixity :: Fixity -&gt; SDoc
</span><a href="#local-6989586621680982261"><span class="hs-identifier hs-var hs-var">fixity</span></a></span></span><span> </span><span id="local-6989586621680982163"><span class="annot"><span class="annottext">Fixity
</span><a href="#local-6989586621680982163"><span class="hs-identifier hs-var">fx</span></a></span></span><span> </span><span class="hs-glyph">=</span><span>  </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#braces"><span class="hs-identifier hs-var">braces</span></a></span><span> </span><span class="annot"><span class="annottext">(SDoc -&gt; SDoc) -&gt; SDoc -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span>
</span><span id="line-152"></span><span>                         </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;Fixity: &quot;</span></span><span>
</span><span id="line-153"></span><span>                      </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Fixity -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Fixity
</span><a href="#local-6989586621680982163"><span class="hs-identifier hs-var">fx</span></a></span><span>
</span><span id="line-154"></span><span>
</span><span id="line-155"></span><span>            </span><span id="local-6989586621680982496"><span id="local-6989586621680982497"><span class="annot"><a href="#local-6989586621680982259"><span class="hs-identifier hs-type">located</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../../base/src/Data.Data.html#Data"><span class="hs-identifier hs-type">Data</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680982497"><span class="hs-identifier hs-type">b</span></a></span><span class="hs-special">,</span><span class="annot"><a href="../../base/src/Data.Data.html#Data"><span class="hs-identifier hs-type">Data</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680982496"><span class="hs-identifier hs-type">loc</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#GenLocated"><span class="hs-identifier hs-type">GenLocated</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680982496"><span class="hs-identifier hs-type">loc</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680982497"><span class="hs-identifier hs-type">b</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span></span></span><span>
</span><span id="line-156"></span><span>            </span><span id="local-6989586621680982259"><span class="annot"><span class="annottext">located :: forall b loc. (Data b, Data loc) =&gt; GenLocated loc b -&gt; SDoc
</span><a href="#local-6989586621680982259"><span class="hs-identifier hs-var hs-var">located</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#L"><span class="hs-identifier hs-type">L</span></a></span><span> </span><span id="local-6989586621680982155"><span class="annot"><span class="annottext">loc
</span><a href="#local-6989586621680982155"><span class="hs-identifier hs-var">ss</span></a></span></span><span> </span><span id="local-6989586621680982154"><span class="annot"><span class="annottext">b
</span><a href="#local-6989586621680982154"><span class="hs-identifier hs-var">a</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#parens"><span class="hs-identifier hs-var">parens</span></a></span><span> </span><span class="annot"><span class="annottext">(SDoc -&gt; SDoc) -&gt; SDoc -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span>
</span><span id="line-157"></span><span>                   </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">loc -&gt; Maybe SrcSpan
forall a b. (Typeable a, Typeable b) =&gt; a -&gt; Maybe b
</span><a href="../../base/src/Data.Typeable.html#cast"><span class="hs-identifier hs-var">cast</span></a></span><span> </span><span class="annot"><span class="annottext">loc
</span><a href="#local-6989586621680982155"><span class="hs-identifier hs-var">ss</span></a></span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-158"></span><span>                        </span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Just"><span class="hs-identifier hs-type">Just</span></a></span><span> </span><span class="hs-special">(</span><span id="local-6989586621680982152"><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621680982152"><span class="hs-identifier hs-var">s</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#SrcSpan"><span class="hs-identifier hs-type">SrcSpan</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span>
</span><span id="line-159"></span><span>                          </span><span class="annot"><span class="annottext">SrcSpan -&gt; SDoc
</span><a href="#local-6989586621680982275"><span class="hs-identifier hs-var">srcSpan</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621680982152"><span class="hs-identifier hs-var">s</span></a></span><span>
</span><span id="line-160"></span><span>                        </span><span class="annot"><span class="annottext">Maybe SrcSpan
</span><a href="../../base/src/GHC.Maybe.html#Nothing"><span class="hs-identifier hs-var">Nothing</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;nnnnnnnn&quot;</span></span><span>
</span><span id="line-161"></span><span>                      </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span> </span><span class="annot"><span class="annottext">b -&gt; SDoc
forall a. Data a =&gt; a -&gt; SDoc
</span><a href="#local-6989586621680982397"><span class="hs-identifier hs-var">showAstData'</span></a></span><span> </span><span class="annot"><span class="annottext">b
</span><a href="#local-6989586621680982154"><span class="hs-identifier hs-var">a</span></a></span><span>
</span><span id="line-162"></span><span>
</span><span id="line-163"></span><span class="annot"><a href="GHC.Hs.Dump.html#normalize_newlines"><span class="hs-identifier hs-type">normalize_newlines</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../base/src/GHC.Base.html#String"><span class="hs-identifier hs-type">String</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../../base/src/GHC.Base.html#String"><span class="hs-identifier hs-type">String</span></a></span><span>
</span><span id="line-164"></span><span id="normalize_newlines"><span class="annot"><span class="annottext">normalize_newlines :: ShowS
</span><a href="GHC.Hs.Dump.html#normalize_newlines"><span class="hs-identifier hs-var hs-var">normalize_newlines</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'\\'</span></span><span class="annot"><span class="hs-glyph hs-type">:</span></span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'r'</span></span><span class="annot"><span class="hs-glyph hs-type">:</span></span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'\\'</span></span><span class="annot"><span class="hs-glyph hs-type">:</span></span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'n'</span></span><span class="annot"><span class="hs-glyph hs-type">:</span></span><span id="local-6989586621680982151"><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621680982151"><span class="hs-identifier hs-var">xs</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'\\'</span></span><span class="annot"><span class="annottext">Char -&gt; ShowS
forall a. a -&gt; [a] -&gt; [a]
</span><span class="hs-glyph hs-var">:</span></span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'n'</span></span><span class="annot"><span class="annottext">Char -&gt; ShowS
forall a. a -&gt; [a] -&gt; [a]
</span><span class="hs-glyph hs-var">:</span></span><span class="annot"><span class="annottext">ShowS
</span><a href="GHC.Hs.Dump.html#normalize_newlines"><span class="hs-identifier hs-var">normalize_newlines</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621680982151"><span class="hs-identifier hs-var">xs</span></a></span><span>
</span><span id="line-165"></span><span class="annot"><a href="GHC.Hs.Dump.html#normalize_newlines"><span class="hs-identifier hs-var">normalize_newlines</span></a></span><span> </span><span class="hs-special">(</span><span id="local-6989586621680982150"><span class="annot"><span class="annottext">Char
</span><a href="#local-6989586621680982150"><span class="hs-identifier hs-var">x</span></a></span></span><span class="annot"><span class="hs-glyph hs-type">:</span></span><span id="local-6989586621680982149"><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621680982149"><span class="hs-identifier hs-var">xs</span></a></span></span><span class="hs-special">)</span><span>                 </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Char
</span><a href="#local-6989586621680982150"><span class="hs-identifier hs-var">x</span></a></span><span class="annot"><span class="annottext">Char -&gt; ShowS
forall a. a -&gt; [a] -&gt; [a]
</span><span class="hs-glyph hs-var">:</span></span><span class="annot"><span class="annottext">ShowS
</span><a href="GHC.Hs.Dump.html#normalize_newlines"><span class="hs-identifier hs-var">normalize_newlines</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621680982149"><span class="hs-identifier hs-var">xs</span></a></span><span>
</span><span id="line-166"></span><span class="annot"><a href="GHC.Hs.Dump.html#normalize_newlines"><span class="hs-identifier hs-var">normalize_newlines</span></a></span><span> </span><span class="hs-special">[</span><span class="hs-special">]</span><span>                     </span><span class="hs-glyph">=</span><span> </span><span class="hs-special">[</span><span class="hs-special">]</span><span>
</span><span id="line-167"></span><span>
</span><span id="line-168"></span><span class="hs-comment">{-
************************************************************************
*                                                                      *
* Copied from syb
*                                                                      *
************************************************************************
-}</span><span>
</span><span id="line-175"></span><span>
</span><span id="line-176"></span><span>
</span><span id="line-177"></span><span class="hs-comment">-- | The type constructor for queries</span><span>
</span><span id="line-178"></span><span class="hs-keyword">newtype</span><span> </span><span id="Q"><span class="annot"><a href="GHC.Hs.Dump.html#Q"><span class="hs-identifier hs-var">Q</span></a></span></span><span> </span><span id="local-6989586621680982469"><span class="annot"><a href="#local-6989586621680982469"><span class="hs-identifier hs-type">q</span></a></span></span><span> </span><span id="local-6989586621680982468"><span class="annot"><a href="#local-6989586621680982468"><span class="hs-identifier hs-type">x</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span id="Q"><span class="annot"><a href="GHC.Hs.Dump.html#Q"><span class="hs-identifier hs-var">Q</span></a></span></span><span> </span><span class="hs-special">{</span><span> </span><span id="unQ"><span class="annot"><span class="annottext">forall q x. Q q x -&gt; x -&gt; q
</span><a href="GHC.Hs.Dump.html#unQ"><span class="hs-identifier hs-var hs-var">unQ</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="#local-6989586621680982468"><span class="hs-identifier hs-type">x</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621680982469"><span class="hs-identifier hs-type">q</span></a></span><span> </span><span class="hs-special">}</span><span>
</span><span id="line-179"></span><span>
</span><span id="line-180"></span><span class="hs-comment">-- | Extend a generic query by a type-specific case</span><span>
</span><span id="line-181"></span><span id="local-6989586621680982503"><span id="local-6989586621680982504"><span id="local-6989586621680982505"><span class="annot"><a href="GHC.Hs.Dump.html#extQ"><span class="hs-identifier hs-type">extQ</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">(</span><span> </span><span class="annot"><a href="../../base/src/Data.Typeable.Internal.html#Typeable"><span class="hs-identifier hs-type">Typeable</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680982505"><span class="hs-identifier hs-type">a</span></a></span><span>
</span><span id="line-182"></span><span>        </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../base/src/Data.Typeable.Internal.html#Typeable"><span class="hs-identifier hs-type">Typeable</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680982504"><span class="hs-identifier hs-type">b</span></a></span><span>
</span><span id="line-183"></span><span>        </span><span class="hs-special">)</span><span>
</span><span id="line-184"></span><span>     </span><span class="hs-glyph">=&gt;</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621680982505"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621680982503"><span class="hs-identifier hs-type">q</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-185"></span><span>     </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621680982504"><span class="hs-identifier hs-type">b</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621680982503"><span class="hs-identifier hs-type">q</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-186"></span><span>     </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621680982505"><span class="hs-identifier hs-type">a</span></a></span><span>
</span><span id="line-187"></span><span>     </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621680982503"><span class="hs-identifier hs-type">q</span></a></span></span></span></span><span>
</span><span id="line-188"></span><span id="extQ"><span class="annot"><span class="annottext">extQ :: forall a b q.
(Typeable a, Typeable b) =&gt;
(a -&gt; q) -&gt; (b -&gt; q) -&gt; a -&gt; q
</span><a href="GHC.Hs.Dump.html#extQ"><span class="hs-identifier hs-var hs-var">extQ</span></a></span></span><span> </span><span id="local-6989586621680982142"><span class="annot"><span class="annottext">a -&gt; q
</span><a href="#local-6989586621680982142"><span class="hs-identifier hs-var">f</span></a></span></span><span> </span><span id="local-6989586621680982141"><span class="annot"><span class="annottext">b -&gt; q
</span><a href="#local-6989586621680982141"><span class="hs-identifier hs-var">g</span></a></span></span><span> </span><span id="local-6989586621680982140"><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621680982140"><span class="hs-identifier hs-var">a</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">q -&gt; (b -&gt; q) -&gt; Maybe b -&gt; q
forall b a. b -&gt; (a -&gt; b) -&gt; Maybe a -&gt; b
</span><a href="../../base/src/Data.Maybe.html#maybe"><span class="hs-identifier hs-var">maybe</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">a -&gt; q
</span><a href="#local-6989586621680982142"><span class="hs-identifier hs-var">f</span></a></span><span> </span><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621680982140"><span class="hs-identifier hs-var">a</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">b -&gt; q
</span><a href="#local-6989586621680982141"><span class="hs-identifier hs-var">g</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">a -&gt; Maybe b
forall a b. (Typeable a, Typeable b) =&gt; a -&gt; Maybe b
</span><a href="../../base/src/Data.Typeable.html#cast"><span class="hs-identifier hs-var">cast</span></a></span><span> </span><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621680982140"><span class="hs-identifier hs-var">a</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-189"></span><span>
</span><span id="line-190"></span><span class="hs-comment">-- | Type extension of queries for type constructors</span><span>
</span><span id="line-191"></span><span id="local-6989586621680982507"><span id="local-6989586621680982508"><span id="local-6989586621680982509"><span class="annot"><a href="GHC.Hs.Dump.html#ext1Q"><span class="hs-identifier hs-type">ext1Q</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../../base/src/Data.Data.html#Data"><span class="hs-identifier hs-type">Data</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680982509"><span class="hs-identifier hs-type">d</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../base/src/Data.Typeable.Internal.html#Typeable"><span class="hs-identifier hs-type">Typeable</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680982508"><span class="hs-identifier hs-type">t</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-192"></span><span>      </span><span class="hs-glyph">=&gt;</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621680982509"><span class="hs-identifier hs-type">d</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621680982507"><span class="hs-identifier hs-type">q</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-193"></span><span>      </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">(</span><span class="hs-keyword">forall</span><span> </span><span id="local-6989586621680982510"><span class="annot"><a href="#local-6989586621680982510"><span class="hs-identifier hs-type">e</span></a></span></span><span class="hs-operator">.</span><span> </span><span class="annot"><a href="../../base/src/Data.Data.html#Data"><span class="hs-identifier hs-type">Data</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680982510"><span class="hs-identifier hs-type">e</span></a></span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="#local-6989586621680982508"><span class="hs-identifier hs-type">t</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680982510"><span class="hs-identifier hs-type">e</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621680982507"><span class="hs-identifier hs-type">q</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-194"></span><span>      </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621680982509"><span class="hs-identifier hs-type">d</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621680982507"><span class="hs-identifier hs-type">q</span></a></span></span></span></span><span>
</span><span id="line-195"></span><span id="ext1Q"><span class="annot"><span class="annottext">ext1Q :: forall d (t :: * -&gt; *) q.
(Data d, Typeable t) =&gt;
(d -&gt; q) -&gt; (forall e. Data e =&gt; t e -&gt; q) -&gt; d -&gt; q
</span><a href="GHC.Hs.Dump.html#ext1Q"><span class="hs-identifier hs-var hs-var">ext1Q</span></a></span></span><span> </span><span id="local-6989586621680982134"><span class="annot"><span class="annottext">d -&gt; q
</span><a href="#local-6989586621680982134"><span class="hs-identifier hs-var">def</span></a></span></span><span> </span><span id="local-6989586621680982133"><span class="annot"><span class="annottext">forall e. Data e =&gt; t e -&gt; q
</span><a href="#local-6989586621680982133"><span class="hs-identifier hs-var">ext</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Q q d -&gt; d -&gt; q
forall q x. Q q x -&gt; x -&gt; q
</span><a href="GHC.Hs.Dump.html#unQ"><span class="hs-identifier hs-var hs-var">unQ</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-special">(</span><span class="annot"><span class="annottext">(d -&gt; q) -&gt; Q q d
forall q x. (x -&gt; q) -&gt; Q q x
</span><a href="GHC.Hs.Dump.html#Q"><span class="hs-identifier hs-var">Q</span></a></span><span> </span><span class="annot"><span class="annottext">d -&gt; q
</span><a href="#local-6989586621680982134"><span class="hs-identifier hs-var">def</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Q q d -&gt; (forall d. Data d =&gt; Q q (t d)) -&gt; Q q d
forall a (t :: * -&gt; *) (c :: * -&gt; *).
(Data a, Typeable t) =&gt;
c a -&gt; (forall d. Data d =&gt; c (t d)) -&gt; c a
</span><a href="GHC.Hs.Dump.html#ext1"><span class="hs-operator hs-var">`ext1`</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(t d -&gt; q) -&gt; Q q (t d)
forall q x. (x -&gt; q) -&gt; Q q x
</span><a href="GHC.Hs.Dump.html#Q"><span class="hs-identifier hs-var">Q</span></a></span><span> </span><span class="annot"><span class="annottext">t d -&gt; q
forall e. Data e =&gt; t e -&gt; q
</span><a href="#local-6989586621680982133"><span class="hs-identifier hs-var">ext</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-196"></span><span>
</span><span id="line-197"></span><span>
</span><span id="line-198"></span><span class="hs-comment">-- | Type extension of queries for type constructors</span><span>
</span><span id="line-199"></span><span id="local-6989586621680982498"><span id="local-6989586621680982499"><span id="local-6989586621680982500"><span class="annot"><a href="GHC.Hs.Dump.html#ext2Q"><span class="hs-identifier hs-type">ext2Q</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../../base/src/Data.Data.html#Data"><span class="hs-identifier hs-type">Data</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680982500"><span class="hs-identifier hs-type">d</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../base/src/Data.Typeable.Internal.html#Typeable"><span class="hs-identifier hs-type">Typeable</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680982499"><span class="hs-identifier hs-type">t</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-200"></span><span>      </span><span class="hs-glyph">=&gt;</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621680982500"><span class="hs-identifier hs-type">d</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621680982498"><span class="hs-identifier hs-type">q</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-201"></span><span>      </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">(</span><span class="hs-keyword">forall</span><span> </span><span id="local-6989586621680982502"><span class="annot"><a href="#local-6989586621680982502"><span class="hs-identifier hs-type">d1</span></a></span></span><span> </span><span id="local-6989586621680982501"><span class="annot"><a href="#local-6989586621680982501"><span class="hs-identifier hs-type">d2</span></a></span></span><span class="hs-operator">.</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../../base/src/Data.Data.html#Data"><span class="hs-identifier hs-type">Data</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680982502"><span class="hs-identifier hs-type">d1</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../base/src/Data.Data.html#Data"><span class="hs-identifier hs-type">Data</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680982501"><span class="hs-identifier hs-type">d2</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="#local-6989586621680982499"><span class="hs-identifier hs-type">t</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680982502"><span class="hs-identifier hs-type">d1</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680982501"><span class="hs-identifier hs-type">d2</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621680982498"><span class="hs-identifier hs-type">q</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-202"></span><span>      </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621680982500"><span class="hs-identifier hs-type">d</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621680982498"><span class="hs-identifier hs-type">q</span></a></span></span></span></span><span>
</span><span id="line-203"></span><span id="ext2Q"><span class="annot"><span class="annottext">ext2Q :: forall d (t :: * -&gt; * -&gt; *) q.
(Data d, Typeable t) =&gt;
(d -&gt; q)
-&gt; (forall d1 d2. (Data d1, Data d2) =&gt; t d1 d2 -&gt; q) -&gt; d -&gt; q
</span><a href="GHC.Hs.Dump.html#ext2Q"><span class="hs-identifier hs-var hs-var">ext2Q</span></a></span></span><span> </span><span id="local-6989586621680982125"><span class="annot"><span class="annottext">d -&gt; q
</span><a href="#local-6989586621680982125"><span class="hs-identifier hs-var">def</span></a></span></span><span> </span><span id="local-6989586621680982124"><span class="annot"><span class="annottext">forall d1 d2. (Data d1, Data d2) =&gt; t d1 d2 -&gt; q
</span><a href="#local-6989586621680982124"><span class="hs-identifier hs-var">ext</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Q q d -&gt; d -&gt; q
forall q x. Q q x -&gt; x -&gt; q
</span><a href="GHC.Hs.Dump.html#unQ"><span class="hs-identifier hs-var hs-var">unQ</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-special">(</span><span class="annot"><span class="annottext">(d -&gt; q) -&gt; Q q d
forall q x. (x -&gt; q) -&gt; Q q x
</span><a href="GHC.Hs.Dump.html#Q"><span class="hs-identifier hs-var">Q</span></a></span><span> </span><span class="annot"><span class="annottext">d -&gt; q
</span><a href="#local-6989586621680982125"><span class="hs-identifier hs-var">def</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Q q d
-&gt; (forall d1 d2. (Data d1, Data d2) =&gt; Q q (t d1 d2)) -&gt; Q q d
forall a (t :: * -&gt; * -&gt; *) (c :: * -&gt; *).
(Data a, Typeable t) =&gt;
c a -&gt; (forall d1 d2. (Data d1, Data d2) =&gt; c (t d1 d2)) -&gt; c a
</span><a href="GHC.Hs.Dump.html#ext2"><span class="hs-operator hs-var">`ext2`</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(t d1 d2 -&gt; q) -&gt; Q q (t d1 d2)
forall q x. (x -&gt; q) -&gt; Q q x
</span><a href="GHC.Hs.Dump.html#Q"><span class="hs-identifier hs-var">Q</span></a></span><span> </span><span class="annot"><span class="annottext">t d1 d2 -&gt; q
forall d1 d2. (Data d1, Data d2) =&gt; t d1 d2 -&gt; q
</span><a href="#local-6989586621680982124"><span class="hs-identifier hs-var">ext</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-204"></span><span>
</span><span id="line-205"></span><span class="hs-comment">-- | Flexible type extension</span><span>
</span><span id="line-206"></span><span id="local-6989586621680982453"><span id="local-6989586621680982454"><span id="local-6989586621680982455"><span class="annot"><a href="GHC.Hs.Dump.html#ext1"><span class="hs-identifier hs-type">ext1</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../../base/src/Data.Data.html#Data"><span class="hs-identifier hs-type">Data</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680982455"><span class="hs-identifier hs-type">a</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../base/src/Data.Typeable.Internal.html#Typeable"><span class="hs-identifier hs-type">Typeable</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680982454"><span class="hs-identifier hs-type">t</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-207"></span><span>     </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="#local-6989586621680982453"><span class="hs-identifier hs-type">c</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680982455"><span class="hs-identifier hs-type">a</span></a></span><span>
</span><span id="line-208"></span><span>     </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">(</span><span class="hs-keyword">forall</span><span> </span><span id="local-6989586621680982456"><span class="annot"><a href="#local-6989586621680982456"><span class="hs-identifier hs-type">d</span></a></span></span><span class="hs-operator">.</span><span> </span><span class="annot"><a href="../../base/src/Data.Data.html#Data"><span class="hs-identifier hs-type">Data</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680982456"><span class="hs-identifier hs-type">d</span></a></span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="#local-6989586621680982453"><span class="hs-identifier hs-type">c</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621680982454"><span class="hs-identifier hs-type">t</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680982456"><span class="hs-identifier hs-type">d</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-209"></span><span>     </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621680982453"><span class="hs-identifier hs-type">c</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680982455"><span class="hs-identifier hs-type">a</span></a></span></span></span></span><span>
</span><span id="line-210"></span><span id="ext1"><span class="annot"><span class="annottext">ext1 :: forall a (t :: * -&gt; *) (c :: * -&gt; *).
(Data a, Typeable t) =&gt;
c a -&gt; (forall d. Data d =&gt; c (t d)) -&gt; c a
</span><a href="GHC.Hs.Dump.html#ext1"><span class="hs-identifier hs-var hs-var">ext1</span></a></span></span><span> </span><span id="local-6989586621680982114"><span class="annot"><span class="annottext">c a
</span><a href="#local-6989586621680982114"><span class="hs-identifier hs-var">def</span></a></span></span><span> </span><span id="local-6989586621680982113"><span class="annot"><span class="annottext">forall d. Data d =&gt; c (t d)
</span><a href="#local-6989586621680982113"><span class="hs-identifier hs-var">ext</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">c a -&gt; (c a -&gt; c a) -&gt; Maybe (c a) -&gt; c a
forall b a. b -&gt; (a -&gt; b) -&gt; Maybe a -&gt; b
</span><a href="../../base/src/Data.Maybe.html#maybe"><span class="hs-identifier hs-var">maybe</span></a></span><span> </span><span class="annot"><span class="annottext">c a
</span><a href="#local-6989586621680982114"><span class="hs-identifier hs-var">def</span></a></span><span> </span><span class="annot"><span class="annottext">c a -&gt; c a
forall a. a -&gt; a
</span><a href="../../base/src/GHC.Base.html#id"><span class="hs-identifier hs-var">id</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(forall d. Data d =&gt; c (t d)) -&gt; Maybe (c a)
forall a (t :: * -&gt; *) (c :: * -&gt; *).
(Data a, Typeable t) =&gt;
(forall d. Data d =&gt; c (t d)) -&gt; Maybe (c a)
</span><a href="../../base/src/Data.Data.html#dataCast1"><span class="hs-identifier hs-var">dataCast1</span></a></span><span> </span><span class="annot"><span class="annottext">forall d. Data d =&gt; c (t d)
</span><a href="#local-6989586621680982113"><span class="hs-identifier hs-var">ext</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-211"></span><span>
</span><span id="line-212"></span><span>
</span><span id="line-213"></span><span>
</span><span id="line-214"></span><span class="hs-comment">-- | Flexible type extension</span><span>
</span><span id="line-215"></span><span id="local-6989586621680982444"><span id="local-6989586621680982445"><span id="local-6989586621680982446"><span class="annot"><a href="GHC.Hs.Dump.html#ext2"><span class="hs-identifier hs-type">ext2</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../../base/src/Data.Data.html#Data"><span class="hs-identifier hs-type">Data</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680982446"><span class="hs-identifier hs-type">a</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../base/src/Data.Typeable.Internal.html#Typeable"><span class="hs-identifier hs-type">Typeable</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680982445"><span class="hs-identifier hs-type">t</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-216"></span><span>     </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="#local-6989586621680982444"><span class="hs-identifier hs-type">c</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680982446"><span class="hs-identifier hs-type">a</span></a></span><span>
</span><span id="line-217"></span><span>     </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">(</span><span class="hs-keyword">forall</span><span> </span><span id="local-6989586621680982448"><span class="annot"><a href="#local-6989586621680982448"><span class="hs-identifier hs-type">d1</span></a></span></span><span> </span><span id="local-6989586621680982447"><span class="annot"><a href="#local-6989586621680982447"><span class="hs-identifier hs-type">d2</span></a></span></span><span class="hs-operator">.</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../../base/src/Data.Data.html#Data"><span class="hs-identifier hs-type">Data</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680982448"><span class="hs-identifier hs-type">d1</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../base/src/Data.Data.html#Data"><span class="hs-identifier hs-type">Data</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680982447"><span class="hs-identifier hs-type">d2</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="#local-6989586621680982444"><span class="hs-identifier hs-type">c</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621680982445"><span class="hs-identifier hs-type">t</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680982448"><span class="hs-identifier hs-type">d1</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680982447"><span class="hs-identifier hs-type">d2</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-218"></span><span>     </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621680982444"><span class="hs-identifier hs-type">c</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680982446"><span class="hs-identifier hs-type">a</span></a></span></span></span></span><span>
</span><span id="line-219"></span><span id="ext2"><span class="annot"><span class="annottext">ext2 :: forall a (t :: * -&gt; * -&gt; *) (c :: * -&gt; *).
(Data a, Typeable t) =&gt;
c a -&gt; (forall d1 d2. (Data d1, Data d2) =&gt; c (t d1 d2)) -&gt; c a
</span><a href="GHC.Hs.Dump.html#ext2"><span class="hs-identifier hs-var hs-var">ext2</span></a></span></span><span> </span><span id="local-6989586621680982104"><span class="annot"><span class="annottext">c a
</span><a href="#local-6989586621680982104"><span class="hs-identifier hs-var">def</span></a></span></span><span> </span><span id="local-6989586621680982103"><span class="annot"><span class="annottext">forall d1 d2. (Data d1, Data d2) =&gt; c (t d1 d2)
</span><a href="#local-6989586621680982103"><span class="hs-identifier hs-var">ext</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">c a -&gt; (c a -&gt; c a) -&gt; Maybe (c a) -&gt; c a
forall b a. b -&gt; (a -&gt; b) -&gt; Maybe a -&gt; b
</span><a href="../../base/src/Data.Maybe.html#maybe"><span class="hs-identifier hs-var">maybe</span></a></span><span> </span><span class="annot"><span class="annottext">c a
</span><a href="#local-6989586621680982104"><span class="hs-identifier hs-var">def</span></a></span><span> </span><span class="annot"><span class="annottext">c a -&gt; c a
forall a. a -&gt; a
</span><a href="../../base/src/GHC.Base.html#id"><span class="hs-identifier hs-var">id</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(forall d1 d2. (Data d1, Data d2) =&gt; c (t d1 d2)) -&gt; Maybe (c a)
forall a (t :: * -&gt; * -&gt; *) (c :: * -&gt; *).
(Data a, Typeable t) =&gt;
(forall d e. (Data d, Data e) =&gt; c (t d e)) -&gt; Maybe (c a)
</span><a href="../../base/src/Data.Data.html#dataCast2"><span class="hs-identifier hs-var">dataCast2</span></a></span><span> </span><span class="annot"><span class="annottext">forall d1 d2. (Data d1, Data d2) =&gt; c (t d1 d2)
</span><a href="#local-6989586621680982103"><span class="hs-identifier hs-var">ext</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-220"></span></pre></body></html>